package test.specs.atualizausuario;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.notNullValue;

import org.jbehave.core.annotations.Given;
import org.jbehave.core.annotations.Then;
import org.jbehave.core.annotations.When;

import br.com.ffm.info.praticas.fiptwitter.FipTwitter;
import br.com.ffm.info.praticas.fiptwitter.Usuario;

public class UsuarioAtributosCenario {
	private FipTwitter twitter;	
	private Exception resultException;
	private Usuario u;
	
	public UsuarioAtributosCenario(){
		twitter = new FipTwitter();
		u = twitter.novoUsuario("Capitão Nascimento", "CptoNascimento", "nuncaserao");
	}

	@Given ("eu ja tenha cadastrado o usuario de login CptoNascimento de nome Capitão Nascimento e senha nuncaserao")
	public void dadoQueEuJaTenhaCadastradoUmUsuario(String nome, String login, String senha){
		try{
			twitter.buscarUsuario("CptoNascimento");
		} catch (Exception e){
			resultException = e;
		}
		
	}
	
	@When ("busco pela biografia do usuário")
	public void buscoPelaBiografiaDeUmUsuario(){
		try{
			u.getInformações().getBiografia();
		}catch(Exception e){
			resultException = e;
		}
		   
	}
	
	@When ("busco pelo email do usuário")
	public void buscoPeloEmailDeUmUsuario(){
		try{
			u.getInformações().getEmail();
		}catch(Exception e){
			resultException = e;
		}
		   
	}
	
	@When ("busco pelo website do usuário")
	public void buscoPeloWebsiteDeUmUsuario(){
		try{
			u.getInformações().getWebsite();
		}catch(Exception e){
			resultException = e;
		}
		   
	}
	
	@When ("busco pela localização do usuário")
	public void buscoPelaLocalizaçãoDeUmUsuario(){
		try{
			u.getInformações().getLocalização();
		}catch(Exception e){
			resultException = e;
		}
		   
	}

	@Then("deve aparecer o erro: $erro")
	public void deveAparecerOErro(String erro){
		assertThat(resultException, notNullValue());
		assertThat(erro, equalTo(resultException.getMessage()));

	}

}

